//
// Created by Administrator on 2024/3/25.
// 2024.3 GESP 五级编程题1
// https://oj.youdao.com/problem/19387?from=problems
// pass
/*
 3.1 编程题 1
试题名称：成绩排序
3.1.1 问题描述
有N名同学，每名同学有语文、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从高到低排序：
1. 比较总分，高者靠前；
2. 如果总分相同，则比较语文和数学两科总分，高者靠前；
3. 如果仍相同，则比较语文和数学两科的最高分，高者靠前；
4. 如果仍相同，则二人并列。
你需要输出每位同学的排名，如遇x 人并列，则他们排名相同，并留空后面的x-1 个名次。例如，有 3名同学并
列第1 ，则后一名同学自动成为第4 名。
3.1.2 输入描述
第一行一个整数N ，表示同学的人数。
接下来 N行，每行三个非负整数ci,mi,ei 分别表示该名同学的语文、数学、英语成绩。
保证 0<=ci,mi,ei<=150 。
3.1.3 输出描述
输出 N行，按输入同学的顺序，输出他们的排名。
注意：请不要按排名输出同学的序号，而是按同学的顺序输出他们各自的排名
3.1.5 样例输入 1
 6
 140 140 150
 140 149 140
 148 141 140
 141 148 140
 145 145 139
 0 0 0
3.1.6 样例输出 1
 1
 3
 4
 4
 2
 6
3.1.7 数据规模
对于30% 的测试点，保证N<=100 ，且所有同学的总分各不相同。
对于所有测试点，保证 2<=N<=10^4。
 * */
// 我自己的方法: 先按照规则排序, 再按照顺序添加排名,最后恢复到原来的顺序,输出排名
// 通过了题目给的用例,尚未见到OJ

#include <iostream>
#include <algorithm>
using namespace std;

struct Stu{
    //  序号,总分,语,数,语数,语数的最高分,英,排名
    int num, sum, c, m, cm,  cm_max,    e, rank;
};
bool cmp(Stu a,Stu b)
{
    if (a.sum>b.sum)
        return true;
    if (a.sum==b.sum && a.cm>b.cm)
        return true;
    return a.sum == b.sum && a.cm == b.cm && a.cm_max > b.cm_max;

}

bool cmp2(Stu a,  Stu b)
{
    return a.num<b.num;
}

int main()
{
    int n;
    cin >> n;
//    cout<<n;
    Stu stus[n];
    for (int i = 0; i < n; ++i)
    {
        cin>>stus[i].c>>stus[i].m>>stus[i].e;
        stus[i].num=i+1;
        stus[i].sum=stus[i].c+stus[i].m+stus[i].e;
        stus[i].cm=stus[i].c+stus[i].m;
        if (stus[i].c>=stus[i].m)
            stus[i].cm_max=stus[i].c;
        else
            stus[i].cm_max=stus[i].m;
        stus[i].rank=0;
    }
    sort(stus,stus+n,cmp);
    int rank = 1,gap=1; // gap: 记录有几个并列的,对于有并列的, 后边的名次要空出gap个
    stus[0].rank=rank;
    for (int i = 1; i < n; ++i)
    {
        Stu &a = stus[i];
        Stu &b = stus[i-1];
       if(a.sum == b.sum && a.cm == b.cm && a.cm_max == b.cm_max)
       {
           a.rank=rank;
           ++gap;
           continue;
       }
       else
       {
           rank+=gap;
           gap=1;
           a.rank=rank;
       }
    }
    sort(stus,stus+n,cmp2);
    for (int j = 0; j < n; ++j)
    {
//        cout<<stus[j].c<<' ';
//        cout<<stus[j].m<<' ';
//        cout<<stus[j].e<<' ';
//        cout<<stus[j].sum<<' ';
//        cout<<stus[j].rank<<' ';
//        cout<<endl;
        cout<<stus[j].rank<<endl;
    }
return 0;
}